<?php
/*
 * @ https://EasyToYou.eu - IonCube v11 Decoder Online
 * @ PHP 7.2 & 7.3
 * @ Decoder version: 1.1.6
 * @ Release: 10/08/2022
 */

// Decoded file for php version 71.
class PHPExcel_DocumentProperties
{
    private $creator = "Unknown Creator";
    private $lastModifiedBy;
    private $created;
    private $modified;
    private $title = "Untitled Spreadsheet";
    private $description = "";
    private $subject = "";
    private $keywords = "";
    private $category = "";
    private $manager = "";
    private $company = "Microsoft Corporation";
    private $customProperties = [];
    const PROPERTY_TYPE_BOOLEAN = "b";
    const PROPERTY_TYPE_INTEGER = "i";
    const PROPERTY_TYPE_FLOAT = "f";
    const PROPERTY_TYPE_DATE = "d";
    const PROPERTY_TYPE_STRING = "s";
    const PROPERTY_TYPE_UNKNOWN = "u";
    public function __construct()
    {
        $this->lastModifiedBy = $this->creator;
        $this->created = time();
        $this->modified = time();
    }
    public function getCreator()
    {
        return $this->creator;
    }
    public function setCreator($pValue = "")
    {
        $this->creator = $pValue;
        return $this;
    }
    public function getLastModifiedBy()
    {
        return $this->lastModifiedBy;
    }
    public function setLastModifiedBy($pValue = "")
    {
        $this->lastModifiedBy = $pValue;
        return $this;
    }
    public function getCreated()
    {
        return $this->created;
    }
    public function setCreated($pValue = NULL)
    {
        if($pValue === NULL) {
            $pValue = time();
        } elseif(is_string($pValue)) {
            if(is_numeric($pValue)) {
                $pValue = intval($pValue);
            } else {
                $pValue = strtotime($pValue);
            }
        }
        $this->created = $pValue;
        return $this;
    }
    public function getModified()
    {
        return $this->modified;
    }
    public function setModified($pValue = NULL)
    {
        if($pValue === NULL) {
            $pValue = time();
        } elseif(is_string($pValue)) {
            if(is_numeric($pValue)) {
                $pValue = intval($pValue);
            } else {
                $pValue = strtotime($pValue);
            }
        }
        $this->modified = $pValue;
        return $this;
    }
    public function getTitle()
    {
        return $this->title;
    }
    public function setTitle($pValue = "")
    {
        $this->title = $pValue;
        return $this;
    }
    public function getDescription()
    {
        return $this->description;
    }
    public function setDescription($pValue = "")
    {
        $this->description = $pValue;
        return $this;
    }
    public function getSubject()
    {
        return $this->subject;
    }
    public function setSubject($pValue = "")
    {
        $this->subject = $pValue;
        return $this;
    }
    public function getKeywords()
    {
        return $this->keywords;
    }
    public function setKeywords($pValue = "")
    {
        $this->keywords = $pValue;
        return $this;
    }
    public function getCategory()
    {
        return $this->category;
    }
    public function setCategory($pValue = "")
    {
        $this->category = $pValue;
        return $this;
    }
    public function getCompany()
    {
        return $this->company;
    }
    public function setCompany($pValue = "")
    {
        $this->company = $pValue;
        return $this;
    }
    public function getManager()
    {
        return $this->manager;
    }
    public function setManager($pValue = "")
    {
        $this->manager = $pValue;
        return $this;
    }
    public function getCustomProperties()
    {
        return array_keys($this->customProperties);
    }
    public function isCustomPropertySet($propertyName)
    {
        return isset($this->customProperties[$propertyName]);
    }
    public function getCustomPropertyValue($propertyName)
    {
        if(isset($this->customProperties[$propertyName])) {
            return $this->customProperties[$propertyName]["value"];
        }
    }
    public function getCustomPropertyType($propertyName)
    {
        if(isset($this->customProperties[$propertyName])) {
            return $this->customProperties[$propertyName]["type"];
        }
    }
    public function setCustomProperty($propertyName, $propertyValue = "", $propertyType = NULL)
    {
        if($propertyType === NULL || !in_array($propertyType, ["i", "f", "s", "d", "b"])) {
            if($propertyValue === NULL) {
                $propertyType = "s";
            } elseif(is_float($propertyValue)) {
                $propertyType = "f";
            } elseif(is_int($propertyValue)) {
                $propertyType = "i";
            } elseif(is_bool($propertyValue)) {
                $propertyType = "b";
            } else {
                $propertyType = "s";
            }
        }
        $this->customProperties[$propertyName] = ["value" => $propertyValue, "type" => $propertyType];
        return $this;
    }
    public function __clone()
    {
        $vars = get_object_vars($this);
        foreach ($vars as $key => $value) {
            if(is_object($value)) {
                $this->{$key} = clone $value;
            } else {
                $this->{$key} = $value;
            }
        }
    }
    public static function convertProperty($propertyValue, $propertyType)
    {
        switch ($propertyType) {
            case "empty":
                return "";
                break;
            case "null":
            case "i1":
            case "i2":
            case "i4":
            case "i8":
            case "int":
                return (int) $propertyValue;
                break;
            case "ui1":
            case "ui2":
            case "ui4":
            case "ui8":
            case "uint":
                return abs((int) $propertyValue);
                break;
            case "r4":
            case "r8":
            case "decimal":
                return (double) $propertyValue;
                break;
            case "lpstr":
            case "lpwstr":
            case "bstr":
                return $propertyValue;
                break;
            case "date":
            case "filetime":
                return strtotime($propertyValue);
                break;
            case "bool":
                return $propertyValue == "true" ? true : false;
                break;
            case "cy":
            case "error":
            case "vector":
            case "array":
            case "blob":
            case "oblob":
            case "stream":
            case "ostream":
            case "storage":
            case "ostorage":
            case "vstream":
            case "clsid":
            case "cf":
                return $propertyValue;
                break;
            default:
                return $propertyValue;
        }
    }
    public static function convertPropertyType($propertyType)
    {
        switch ($propertyType) {
            case "i1":
            case "i2":
            case "i4":
            case "i8":
            case "int":
            case "ui1":
            case "ui2":
            case "ui4":
            case "ui8":
            case "uint":
                return "i";
                break;
            case "r4":
            case "r8":
            case "decimal":
                return "f";
                break;
            case "empty":
            case "null":
            case "lpstr":
            case "lpwstr":
            case "bstr":
                return "s";
                break;
            case "date":
            case "filetime":
                return "d";
                break;
            case "bool":
                return "b";
                break;
            case "cy":
            case "error":
            case "vector":
            case "array":
            case "blob":
            case "oblob":
            case "stream":
            case "ostream":
            case "storage":
            case "ostorage":
            case "vstream":
            case "clsid":
            case "cf":
                return "u";
                break;
            default:
                return "u";
        }
    }
}

?>